package com.winning.bdu.dl.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author: shipengfei
 * @Description:
 * @Date: 2019-05-27 15:29
 */
@Mapper
public interface DataBaseMapper {

    /**
     * 校验数据表是否存在
     *
     * @param tableName
     * @return
     */
    List<Map<String, Object>> checkTableIsExists(@Param("tableName") String tableName);

    /**
     * 根据表、索引列创建临时表
     *
     * @param targetTableName
     * @param tempTableName
     * @param columns
     */
    void createTable(@Param("targetTableName") String targetTableName, @Param("tempTableName") String tempTableName,
                     @Param("columns") String columns);

    /**
     * 删除表
     *
     * @param tableName
     */
    void dropTable(@Param("tableName") String tableName);

    /**
     * 根据临时表更新目标表数据状态
     *
     * @param targetTableName
     * @param tempTableName
     * @param indexColumns
     */
    void updateTargetTableFlag(@Param("targetTableName") String targetTableName,
                               @Param("tempTableName") String tempTableName,
                               @Param("indexColumns") List<String> indexColumns);
}
